package com.qianfeng.smsplatform.strategy.service.impl;//
//                            _ooOoo_
//                           o8888888o
//                           88" . "88
//                           (| -_- |)
//                            O\ = /O
//                        ____/`---'\____
//                      .   ' \\| |// `.
//                       / \\||| : |||// \
//                     / _||||| -:- |||||- \
//                       | | \\\ - /// | |
//                     | \_| ''\---/'' | |
//                      \ .-\__ `-` ___/-. /
//                   ___`. .' /--.--\ `. . __
//                ."" '< `.___\_<|>_/___.' >'"".
//               | | : `- \`.;`\ _ /`;.`/ - ` : | |
//                 \ \ `-. \_ __\ /__ _/ .-` / /
//         ======`-.____`-.___\_____/___.-`____.-'======
//                            `=---='
//
//         .............................................
//                  佛祖镇楼                  BUG辟易
//          佛曰:
//                  写字楼里写字间，写字间里程序员；
//                  程序人员写程序，又拿程序换酒钱。
//                  酒醒只在网上坐，酒醉还来网下眠；
//                  酒醉酒醒日复日，网上网下年复年。
//                  但愿老死电脑间，不愿鞠躬老板前；
//                  奔驰宝马贵者趣，公交自行程序员。
//


import com.qianfeng.smsplatform.common.constants.CacheConstants;
import com.qianfeng.smsplatform.common.model.Standard_Submit;
import com.qianfeng.smsplatform.strategy.feign.RedisCacheFeign;
import com.qianfeng.smsplatform.strategy.service.FilterChain;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 号段补全
 * Created by Mr.ycz on 2019/12/3 17:33
 */
@Service
public class SmsPhoneFilter implements FilterChain {
    private final static Logger log = LoggerFactory.getLogger(SmsBlackFilter.class);

    @Autowired
    private RedisCacheFeign cacheFeign;

    @Override
    public boolean dealMessage(Standard_Submit submit) {

        //key为前缀加手机前七位
        String mobilePhase = null;
        try {
            mobilePhase = cacheFeign.getString(CacheConstants.CACHE_PREFIX_PHASE + submit.getDestMobile().substring(0, 7));
        } catch (Exception e) {
            log.error("电话号码{}=====>不正确", submit.getDestMobile());
            e.printStackTrace();
        }
        //拆分省和市
        if (mobilePhase != null && !"".equals(mobilePhase)) {
            String[] split = mobilePhase.split("&");

            if (split != null) {
                try {
                    //省id
                    submit.setProductID(Integer.valueOf(split[0]));
                    //市id
                    submit.setCityId(Integer.valueOf(split[1]));
                } catch (NumberFormatException e) {
                    log.error("类型转换异常");
                    e.printStackTrace();
                    //后续过滤器不再执行
                    return false;
                }
            } else {
                //查询不到
                log.info("没有查询到{}的手机号段信息", submit.getDestMobile());
                submit.setProductID(0);
                submit.setCityId(0);
            }
        }
        //true为继续执行
        return true;
    }
}
